package com.pithypan.mapper;

import com.pithypan.dto.SessionWebUserDto;
import com.pithypan.entity.FileInfo;
import com.pithypan.entity.UserInfo;
import com.pithypan.vo.FileInfoQuery;
import com.pithypan.vo.UserInfoQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;

/**
 * <p>
 * 用户信息 Mapper 接口
 * </p>
 *
 * @author author
 * @since 2023-08-17
 */
@Mapper
public interface UserInfoMapper {

    //查询符合条件的数量
    public Integer findTotalCount(@Param("query")UserInfoQuery query);

    //分页查询用户
    public ArrayList<UserInfo> findListByPage(@Param("query") UserInfoQuery query);

    //根据邮箱查找用户
    public UserInfo selectByEmail(String email);

    //根据昵称查找用户
    public UserInfo selectByNickName(@Param("nickName") String nickName);

    //添加用户
    public void insert(UserInfo userInfo);

    //根据userId更新用户最后一次登陆的时间
    public void updateByUserId(@Param("updateInfo") UserInfo updateInfo, @Param("userId") String userId);

    //根据邮箱更新账号密码
    public void updatePasswordByEmail(@Param("updateInfo") UserInfo updateInfo, @Param("email") String email);

    //根据userId修改Qq头像
    public void updateUserQqAvatarByUserId(@Param("updateInfo") UserInfo updateInfo, @Param("userId") String userId);

    //根据userId修改密码
    public void updatePasswordByUserId(@Param("updateInfo") UserInfo updateInfo, @Param("userId") String userId);

    //更新用户空间信息
    public Integer updateUserSpace(@Param("userId") String userId, @Param("useSpace") Long useSpace, @Param("totalSpace") Long totalSpace);

    //根据userId查询用户
    public UserInfo findUserInfoByUserId(String userId);
}
